Docker安装mysql 数据库

安装MySQL(指定版本)

1
docker pull mysql:8.0

注:值得注意的是,如果主机已经安装了mysql,那么它会占用3306端口,docker中的mysql将无法正常启动。

解决方式:

1.卸载或暂停主机的mysql服务。

暂停主机上的mysql

1
systemctl stop mysqld

2.创建容器时,修改docker容器的端口映射

启动MySQL

1
docker run -p 3306:3306 --name mysql80 -v /mydata/mysql80/conf:/etc/mysql/conf.d -v /mydata/mysql80/logs:/logs -v /mydata/mysql80/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:8.0

参数讲解:

-p是将docker中mysql端口号3306映射成为12345端口,也可以选择不映射,使用默认的3306

–name mysql: 运行服务的取名

-v是将主机目录下的文件挂载到容器中路径下(/mydata是我本人数存放目录)

-e MYSQL_ROOT_PASSWORD:初始化root用户密码

-d mysql:8.0 : 后台运行mysql8.0

设置远程访问

进入mysql镜像

1
docker exec -it mysql8 bash

进入mysql命令行

1
mysql -uroot -p

选择mysql数据库

1
use mysql;

设置远程访问

mysql8.0.22设置远程连接

1
update user set host='%' where user='root';
1
flush privileges;

较旧版本的mysql 和 还需要以下设置:

1
2
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION; # 设置远程访问
```

ALTER USER ‘root‘@’%’ IDENTIFIED WITH mysql_native_password BY ‘root’; #更新一下用户的密码

1
2
```
FLUSH PRIVILEGES; #刷新权限

继开 wechat
欢迎加我的微信,共同交流技术